package org.stragma.symbian.aterms;

import aterm.*;

/**
 * Primary interface for producing statistics on a syntax tree represented using aterms
 * @author Shirren
 *
 */
public interface IATermStat {
	
	/**
	 * Gets the total number of nodes in a tree from a given term
	 * @param term
	 * @return
	 */
	long getTotalNodes(ATerm term);
	
	/**
	 * Gets the total number of terms in a tree
	 * @param term
	 * @return
	 */
	long getSubTerms(ATerm term);
	
	/**
	 * Gets the total number of unique terms in a tree
	 * @param term
	 * @return
	 */
	long getUniqueSubTerms(ATerm term);
}
